46 research outputs found
Find Unique Usages: Helping Developers Understand Common Usages
When working in large and complex codebases, developers face challenges using
\textit{Find Usages} to understand how to reuse classes and methods. To better
understand these challenges, we conducted a small exploratory study with 4
participants. We found that developers often wasted time reading long lists of
similar usages or prematurely focused on a single usage. Based on these
findings, we hypothesized that clustering usages by the similarity of their
surrounding context might enable developers to more rapidly understand how to
use a function. To explore this idea, we designed and implemented \textit{Find
Unique Usages}, which extracts usages, computes a diff between pairs of usages,
generates similarity scores, and uses these scores to form usage clusters. To
evaluate this approach, we conducted a controlled experiment with 12
participants. We found that developers with Find Unique Usages were
significantly faster, completing their task in 35% less time
Editable AI: Mixed Human-AI Authoring of Code Patterns
Developers authoring HTML documents define elements following patterns which
establish and reflect the visual structure of a document, such as making all
images in a footer the same height by applying a class to each. To surface
these patterns to developers and support developers in authoring consistent
with these patterns, we propose a mixed human-AI technique for creating code
patterns. Patterns are first learned from individual HTML documents through a
decision tree, generating a representation which developers may view and edit.
Code patterns are used to offer developers autocomplete suggestions, list
examples, and flag violations. To evaluate our technique, we conducted a user
study in which 24 participants wrote, edited, and corrected HTML documents. We
found that our technique enabled developers to edit and correct documents more
quickly and create, edit, and correct documents more successfully
On Reducing the Energy Consumption of Software: From Hurdles to Requirements
International audienceBackground. As software took control over hardware in many domains, the question of the energy footprint induced by the software is becoming critical for our society, as the resources powering the underlying infrastructure are finite. Yet, beyond this growing interest, energy consumption remains a difficult concept to master for a developer.Aims. The purpose of this study is to better understand the root causes that prevent software energy consumption to be more widely adopted by developers and companies.Method. To investigate this issue, this paper reports on a qualitative study we conducted in an industrial context. We applied an in-depth analysis of the interviews of 10 experienced developers and summarized a set of implications.Results. We argue that our study delivers i) insightful feedback on how green software design is considered among the interviewed developers and ii) a set of findings to build helpful tools, motivate further research, and establish better development strategies to promote green software design.Conclusion. This paper covers an industrial case study of developers' awareness of green software design and how to promote it within the company. While it might not be generalizable for any company, we believe our results deliver a common body of knowledge with implications to be considered for similar cases and further researches